\subsection{Why Python?}

Python is an interpreted, general-purpose high-level programming
language. I decided to use it in this project for a number of
reasons.

\paragraph{Python is well suited to the project.} Because it is
high-level, interpreted, and dynamically typed, Python is well
suited to a `rapid prototyping' style of development, with large
numbers of small, quick development-testing cycles. This suits my
needs, because it must be possible to quickly change the workings
of the game to experiment and test new game rules.
\paragraph{The standard library} of Python is extensive, and there
is a large community of third party modules providing all sorts of
extra functionality. This is useful because it keeps the
possibility of extra features open. For example, if I want to add
functionality to play \TC over a network later, I know that there
are a wide variety of modules to ease network communications in the
standard library, providing good support for a number of protocols,
including HTTP, XML-RPC, Telnet etc. There are also lower-level
networking and data processing modules like \verb!socket!,
\verb!ssl! and \verb!json! which would make it easy to design my
own. The same is true for other areas of expansion like display,
interaction, data storage etc; There are modules for almost
anything I'd be likely to need.

